package com.cjx.stars.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.cjx.stars.common.Response;
import com.cjx.stars.pojo.request.BlogUpdateRequest;
import com.cjx.stars.pojo.table.Blog;
import com.cjx.stars.pojo.request.AddBlog;
import com.cjx.stars.pojo.vo.BlogVo;

/**
* @author cjx
* @description 针对表【blog】的数据库操作Service
* @createDate 2024-04-03 19:28:10
*/
public interface BlogService extends IService<Blog> {

    /**
     * 新增博文
     * @param blog 博文请求封装
     * @return 返回信息
     */
    Response<?> addBlog(AddBlog blog);

    /**
     * 分页条件查询博文数据
     * @param currentPage 分页数据
     * @param title 模糊查询标题
     * @return 博文数据
     */
    Response<?> getBlogList(int currentPage, String title);

    /**
     * 根据id查询博文详情
     * @param blogId 博文id
     * @return 博文详情
     */
    BlogVo getBlogVoById(Long blogId);

    /**
     * 评论数+1
     * @param blogId 博文id
     */
    void addCommentNum(Long blogId);

    /**
     * 博文删除
     * @param blogId 博文id
     * @return 返回信息
     */
    Response<?> deleteBlog(Long blogId);

    /**
     * 修改博文信息
     * @param blogUpdateRequest 待修改的博文信息
     * @return 返回信息
     */
    Response<?> updateBlog(BlogUpdateRequest blogUpdateRequest);

    /**
     * 查看我的博文
     * @param currentPage 分页数据
     * @return 返回信息
     */
    Response<?> getMyBlogList(int currentPage);
}
